#include <constants.h>
#include <library.h>

#ifndef LNP_H_
#define LNP_H_

class LNP {
public:
	LNP();
	virtual ~LNP();

	MATRIX cost;
	void calculate_obs_cost(MATRIX &grid);

private:
	int w, h, cnt;
	double cmx;
	void clear();
	void make_matrix(int height, int width);
	void invert(MATRIX &mat,double mx);
	double update_cost(int x, int y, double c );
	void push_neighbors(int x, int y, double c, std::queue<TFII> &Q, MATRIX &grid );
};

#endif /* LNP_H_ */
